package cn.xscrum.vtsp.mapper;

import cn.xscrum.vtsp.domain.VtspActivity;
import cn.xscrum.vtsp.domain.VtspEnroll;
import cn.xscrum.vtsp.vo.VtspEnrollVo;
import cn.xscrum.vtsp.domain.VtspEnroll;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 报名信息Mapper接口
 * 
 * @author xscrum
 * @date 2021-10-01
 */
public interface VtspEnrollMapper 
{
    /**
	  * 查询报名信息
     * 
     * @param enrollId 报名信息ID
     * @return 报名信息
     */
    public VtspEnroll selectVtspEnrollById(Long enrollId);

    public Long selectPostEnrollNum(Long activityId);

    public VtspEnroll queryVtspEnrollById(@Param("volunteerId") Long volunteerId, @Param("activityId") Long activityId);

    /**
     * 查询活动报名信息
     *
     * @param vtspEnroll 报名信息
     * @return 报名信息集合
     */
    public VtspEnroll queryEnroll(VtspEnroll vtspEnroll);

    /**
	 * 查询报名信息列表
     * 
     * @param vtspEnroll 报名信息
     * @return 报名信息集合
     */
    public List<VtspEnroll> selectVtspEnrollList(VtspEnroll vtspEnroll);

    List<VtspEnrollVo> selectServiceRecord(@Param("volunteerId") Long volunteerId);

    /**
	 * 新增报名信息
     * 
     * @param vtspEnroll 报名信息
     * @return 结果
     */
    public int insertVtspEnroll(VtspEnroll vtspEnroll);

    /**
	  * 修改报名信息
     * 
     * @param vtspEnroll 报名信息
     * @return 结果
     */
    public int updateVtspEnroll(VtspEnroll vtspEnroll);

    /**
	 * 删除报名信息
     * 
     * @param enrollId 报名信息ID
     * @return 结果
     */
    public int deleteVtspEnrollById(Long enrollId);

    /**
	 * 批量删除报名信息
     * 
     * @param enrollIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteVtspEnrollByIds(String[] enrollIds);

    public VtspEnroll selectVtspEnrollByUIdAndActivityId(VtspEnroll vtspEnroll);

    public VtspEnroll selectVtspEnrollByUIdAndActivityId2(@Param("volunteerId") Long volunteerId, @Param("activityId") Long activityId);
}
